Exemplary embodiments relate to safely sharing data across disjoint clusters, and more specifically, to safely sharing data across disjoint clusters with reliability, availability, and integrity.
Clustered operating systems, such as IBM's z/OS®, provide system services that allow serialization of shared resources among all operating system images in the cluster as well as caching of data into a shared resource such as an IBM® System z coupling facility. In z/OS®, system services such as ENQUE and DEQUE provided by the Global Resource Serialization (GRS) component provide serialization semaphores. The XES component of z/OS provides the system services to allow caching of data in the coupling facility. These services are limited in scope to a single cluster, a set of operating system images (or instances) configured to communicate with each over sharing resources.
System clusters are typically dynamic, allowing operating system images to come and go based on customer goals for the work load, testing, and development requirements. Often when systems are removed from a cluster and either form their own new cluster, or join a different cluster, accessibility to the I/O resources is not changed. Continued access to data is not prevented. Some of the data requires the use of the system semaphores to provide serialized access for purposes such as updating directories and other metadata. If serialization is not performed correctly applications may access the wrong data and fail or experience unpredictable results.